package org.redis;

/**
 * redis服务器的info信息常量
 */
enum RedisInfo {


    MEMORY_USAGE("Memory","memory_usage"),
    /**
     *  主机拥有的内存总量
     */
    TOTAL_SYSTEM_MEMORY("Memory","total_system_memory"),
    TOTAL_SYSTEM_MEMORY_HUMAN("Memory","total_system_memory_human"),
    /**
     * # 由 Redis 分配器分配的内存总量，以字节（byte）为单位
     */
    USE_MEMORY("Memory","used_memory"),
    USE_MEMORY_HUMAN("Memory","used_memory_human"),
    /**
     * # 从操作系统的角度，返回 Redis 已分配的内存总量（俗称常驻集大小）。这个值和 top 、 ps 等命令的输出一致。
     */
    USE_MEMORY_RSS("Memory","used_memory_rss"),
    USE_MEMORY_RSS_HUMAN("Memory","used_memory_rss_human"),
    /**
     * 数据集的大小（以字节为单位，used_memory - used_memory_overhead）
     */
    USE_MEMORY_DATASET("Memory","used_memory_dataset"),
    /**
     * used_memory_dataset在净内存（used_memory-used_memory_startup）使用量中所占的百分比
     */
    USE_MEMORY_DATASET_PERC("Memory","used_memory_dataset_perc"),

    /**
     * CPU
     * # CPU
     * used_cpu_sys:1521.859185		# redis主进程在核心态所占用的CPU资源
     * used_cpu_user:1277.686003		# redis主进程在用户态所占用的CPU资源
     * used_cpu_sys_children:5.624410	# redis中后台进程在核心态所占用的CPU资源
     * used_cpu_user_children:52.044415	# redis中后台进程在用户态所占用的CPU资源
     */
    USED_CPU_SYS("CPU","used_cpu_sys"),
    USED_CPU_USER("CPU","used_cpu_user"),
    USED_CPU_SYS_CHILDREN("CPU","used_cpu_sys_children"),
    USED_CPU_USER_CHILDREN("CPU","used_cpu_user_children");


    private final String section;
    private final String command;
    RedisInfo(String section, String command){
        this.section = section;
        this.command = command;
    }

    public String getSection() {
        return section;
    }

    public String getCommand() {
        return command;
    }
}
